home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / gfx / 3d / 3dgpl.lha / hardware.h < prev    next >
C/C++ Source or Header  |  2001-06-09  |  3KB  |  81 lines

  1. #ifndef _HARDWARE_H_
  2. #define _HARDWARE_H_
  3.  
  4. /** 3DGPL *************************************************\
  5.  *  (AMIGA  ,RTGMASTER)                                   *
  6.  *  Driver hack by Heinrich Tillack                      *
  7.  *  Header for hardware specific stuff.                   *
  8.  *                                                        *
  9.  *  hardware.c               hardware specific stuff.     *
  10.  *                                                        *
  11.  *  (6/1995) By Sergei Savhenko. (savs@cs.mcgill.ca).     *
  12.  *  Copyright (c) 1995 Sergei Savchenko.                  * 
  13.  *  THIS SOURCE CODE CAN'T BE USED FOR COMERCIAL PURPOSES *
  14.  *  WITHOUT AUTHORISATION                                 *
  15. \**********************************************************/
  16.  
  17. #include <stdio.h>
  18. #include <stdlib.h>
  19.  
  20. typedef short signed_16_bit;                /* compiler/mashine dependent */
  21. typedef long   signed_32_bit;           
  22. typedef unsigned short unsigned_16_bit;
  23. typedef unsigned long   unsigned_32_bit;
  24.  
  25. void HW_set_int(int *dst,long lng,int val);
  26. #define HW_set_char(dst,lng,val)  memset(dst,val,lng)
  27. void HW_copy_int(int *src, int *dst,long lng);
  28. #define HW_copy_char(src,dst,lng) memcpy(dst,src,lng)
  29.  
  30. // Sorry. These are constants. 
  31.  
  32. #define HW_SCREEN_X_SIZE         320             
  33. #define HW_SCREEN_Y_SIZE         200        /* number of pixels total */
  34.  
  35. #define HW_SCREEN_X_MAX          319
  36. #define HW_SCREEN_Y_MAX          199        /* number of maximum pixel */
  37.  
  38. #define HW_SCREEN_X_CENTRE       160 
  39. #define HW_SCREEN_Y_CENTRE       100        /* middle of the screen */
  40.  
  41. #define HW_COLOURMAP_SIZE_CHAR 64000        /* bytes in the colourmap */
  42. #define HW_COLOURMAP_SIZE_INT  16000        /* ints in the colourmap */
  43.  
  44. struct HW_colour                            /* describes colour */
  45. {
  46.  int hw_r;
  47.  int hw_g;
  48.  int hw_b;                                  /* intensity components */
  49. };
  50.  
  51. int HW_open_screen(char *display_name,
  52.                    char *screen_name, 
  53.                    struct HW_colour palette[256],
  54.                    unsigned char *colourmap
  55.                   );
  56. void HW_blit(void);
  57. void HW_close_screen(void);
  58.  
  59. // AMIGA Keycodes
  60.  
  61. #define HW_KEY_ARROW_LEFT  0x4f
  62. #define HW_KEY_ARROW_RIGHT 0x4e
  63. #define HW_KEY_ARROW_UP    0x4c
  64. #define HW_KEY_ARROW_DOWN  0x4d
  65.  
  66. #define HW_KEY_PLUS         0x0c
  67. #define HW_KEY_MINUS        0x0b
  68.  
  69. #define HW_KEY_ENTER        0x44
  70. #define HW_KEY_SPACE        0x40
  71. #define HW_KEY_TAB          0x42             /* all i can think of */ 
  72.  
  73. void HW_run_event_loop(void (*application_main)(void),
  74.                        void (*application_key_handler)(int key_code)
  75.                       );
  76. void HW_quit_event_loop(void);
  77.  
  78. /**********************************************************/
  79.  
  80. #endif
  81.